package com.eddie.libray.service;

import com.eddie.libray.LibraryDataSource;
import com.eddie.libray.entity.Admin;
import com.eddie.libray.entity.LoginUser;
import com.eddie.libray.entity.UserEntity;

import java.util.Map;
import java.util.Scanner;

/**
 * 登录业务处理
 *
 * @author Eddie
 * @since 2022/09/02 09:36
 **/
public class LoginService {

    private final Scanner scanner = new Scanner(System.in);

    private final Map<String, UserEntity> users = LibraryDataSource.users;


    /**
     * 管理员登陆
     */
    public LoginUser loginAdmin() {
        //定义要返回的登录用户，默认为null
        LoginUser loginUser = null;

        System.out.println("请输入用户名：");
        String username = scanner.next();
        //判断输入的用户名与系统中的管理员用户名是否比对成功
        if (!Admin.username.equals(username)) {
            System.out.println("用户名或密码输入错误");
        } else {
            System.out.println("请输入密码：");
            String password = scanner.next();

            //判断输入的密码与系统中的管理员密码是否比对成功
            if ((!Admin.password.equals(password))) {
                System.out.println("用户名或密码输入错误");
            } else {
                //校验成功后将返回的登录用户信息设置为一个新创建的登录信息对象
                loginUser = new LoginUser(username);
                System.out.println("登陆成功！");
            }
        }
        return loginUser;
    }

    /**
     * 用户登录
     */
    public LoginUser loginUser() {
        LoginUser loginUser = null;
        System.out.println("请输入用户名：");
        //根据用户输入的用户名查找维护的用户数据源中对应的用户信息
        UserEntity findUser = users.get(scanner.next());
        if (findUser == null) {
            System.out.println("没有找到该用户，请核对后重试");
            return null;
        }
        System.out.println("请输入借书证号：");
        //判断通过用户名获取的用户的借书证号与用户本次传入的借书证号是否比对
        if (findUser.getLibraryCardCode().equals(scanner.next())) {
            System.out.println("登陆成功！");
            //将查询到的用户信息创建为一个系统用户登陆的用户信息
            loginUser = new LoginUser(findUser.getName());
        }

        return loginUser;
    }
}
